# 本程序有许多妥协之处，因为有一部分的python方法不可用
import turtle

turtle.pendown()

class TurtleTerminal:
    # 这个class里面有outPut textInput runCommand clear等方法，是turtle的功能封装。outPut方法负责输出文字，textInput方法负责让用户输入文字，runCommand方法负责运行Apps类的方法，clear是负责清除屏幕的
    def __init__(self):
        pass
    def outPut(self,word,y):
        turtle.write(word)
        turtle.goto(0,y)
    def textInput(self,title,prompt):
        return turtle.textinput(title,prompt)
    def runCommand(self,text):
        # 这只是一种妥协，因为exec方法不可用
        if text=='notepad':
            sysApp.notepad()
        if text=='showNotepad':
            sysApp.showNotepad()
        if text=='exit':
            quit()
        if text=='resetUserInfo':
            sysApp.resetUserInfo()
        if text=='clear':
            terminal.clear()
        if text=='echo':
            sysApp.echo()
    def clear(self):
        turtle.clear()
        turtle.reset()

class Plot:
    # Plot类负责绘制快速绘制图像，但是暂时没有用到
    def __init__(self):
        pass
    def round(self,r,angle):
        turtle.circle(r,angle)
    def square(self,a,b,c,d):
        turtle.goto(a)
        turtle.pendown()
        turtle.goto(b)
        turtle.goto(c)
        turtle.goto(d)
        turtle.goto(a)

class Apps:
    # Apps类负责实现一些应用
    def __init__(self):
        # 定义一些App需要的变量，如果新添加了一些App的话，就请添加一个应用变量（即使可能不需要）
        self.putlicVar=0
        self.notepadVar=0
        self.rUsername='admin'
        self.rPassword='001'
        self.username=0
        self.password=0
        self.echoVar=0
    def notepad(self):
        self.notepadVar=str(terminal.textInput('Notepad','text'))
    def showNotepad(self):
        terminal.clear()
        terminal.outPut(self.notepadVar,-10)
    def resetUserInfo(self):
        # 重置用户名和密码
        self.rUsername=terminal.textInput('resetUserInfo','Input Username')
        self.rPassword=terminal.textInput('resetUserInfo','Input Password')
    def login(self):
        # 处理登录
        self.username = terminal.textInput('Hello', 'Username')
        self.password = terminal.textInput('Next step', 'Input your password.')
        if (self.username == self.rUsername and self.password == self.rPassword):
            terminal.outPut('Hello.',-10)
            terminal.outPut('Welcome to turtle terminal.',-20)
            terminal.outPut('You can input in the terminal.',-30)
    def echo(self):
        self.echoVar=terminal.textInput('echo','text')
        terminal.outPut(self.echoVar,-10)

terminal=TurtleTerminal()
fastDraw=Plot()
sysApp=Apps()

rUsername=''
rPassword=''

sysApp.login()

while True:
    command=terminal.textInput('command','Input command')
    terminal.runCommand(command)